SNMP 您所在的位置:网站首页 mib browser 使用教程 SNMP

SNMP

2023-08-12 01:23| 来源: 网络整理| 查看: 265

SNMP的基本知识此处就不再介绍了,就默认大家已经会了,本文重点是MIB的学习及实践。

MIB (Managed Information Base)管理信息库 保存被管对象信息的(虚拟)数据库被管对象用SMI定义被管对象为树形结构类似OSI, SNMP的被管对象也被组织在注册树中 在这里插入图片描述基本被管对象:在SNMP中,只有处于叶子节点上的对象是可以直接访问的

directory(1): 为与OSI directory 相关的、将来的应用而保留 mgmt(2): 用于在IAB批准的文档中定义的对象 experimental(3): 用于表示在Internet 实验中应用的对象 private(4): 用于标识专用对象 :

目前只定义了一个子节点:enterprise各厂商的mib在enterprise 中分别注册http://www.iana.org/assignments/enterprise-numbers 以RFC1155 MIB库介绍 SNMP的数据类型和结构

在这里插入图片描述

通俗地来描述EXPORT 有点像函数声明,声明以下名称的节点可以外部调用。 在这里插入图片描述通过 OBJECT IDENTIFIER 创建节点并指定下挂的上级节点位置,如 directory 定义为 internet 的 1号子节点。 在这里插入图片描述RFC1155 库中定义的对象属性宏,创建了对象的基本属性,属于底层定义,我们只需会调用即可。

在这里插入图片描述

由OBJECT IDENTIFIER 创建了ObjectName, 用于定义被管对象的名称, 简单类比C语言的typedef 过程。 在这里插入图片描述不同的对象可以赋予不同的数据类型,将会有不同的属性。 在这里插入图片描述可以看到RFC 1155库中的自定义数据类型 IpAddress 等的定义过程

在这里插入图片描述

在这里插入图片描述

为了简化和规范定义方法,SMI定义了OBJECT-TYPE宏RFC1155-SMI中定义了OBJECT-TYPE宏RFC1212对OBJECT-TYPE宏进行了重新定义(完善)

可以看到完善后的宏更为直观易懂,包含了"SYNTAX", “ACCESS”,“STATUS”, value 等属性。 在这里插入图片描述 利用OBJECT-TYPE MACRO定义被管对象类,只要确定其名称、标识符,给出SYNTAX、ACCESS、STATUS、DESCRIPTION等参数即可,可以看成是OBJECT-TYPE MACRO的参数调用过程

定义表格

使用SEQUENCE、SEQUENCE OF来定义表格,注意要给出IndexPart参数 具有参考下方实例。 MIB库实际创建

系统:Windos 10 21H1 (由于win10很烂的更新,不同版本会遇到不同的状况,下面是我遇到的问题) 软件:iReasoning MIB Browser

1、安装SNMP Agent 在这里插入图片描述

在这里插入图片描述 然而,我没有这个选项,所以应该: 在这里插入图片描述 在这里插入图片描述

找到这个,安装 在这里插入图片描述 然而并不行,安装之后依然找不到,索性直接进行下一步,反而在服务里找到了正在运行的SNMP,所以这个版本win10不需要在windos功能里打勾

在这里插入图片描述 在这里插入图片描述

2、安装MIB Browser

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 例程: 编写一个“手机店”的 mib 库,该 mib 库位于enterprise节点下、编号为你的学号后5位节点下面。下级节点包括:

手机店名称 – 字符串,只读

手机店地址 – 字符串,只读

手机店老板姓名 – 字符串,读写

手机店手机总数 – 整数,只读

手机库存表

* 手机型号 – 字符串,具备唯一性,索引列 * 手机生产厂商 – 字符串,只读 * 手机CPU核数 – 整数,只读 * 手机内存大小 – 整数,只读。单位:GB * 手机存储大小 – 整数,只读。单位:GB * 该型号手机的库存数量 – 整数,只读

要求:可通过 MIB Browser 成功加载。

SHOUJIDIAN-MIB DEFINITIONS ::= BEGIN -- 为注释,不影响代码 -- 引用RFC1155 和 RFC1212 IMPORTS enterprises, Counter FROM RFC1155-SMI OBJECT-TYPE FROM RFC-1212; --定义enterprises下shoujidian节点 shoujidian OBJECT IDENTIFIER ::= { enterprises 10000 } --为了方便,将OCTET STRING和INTEGER 定义为自己习惯的字符 String ::= OCTET STRING Int ::= INTEGER --手机店名称 --用宏定义创建对象StoreName,OCTET STRING 类型,长度0-10,只读,强制型,位于shoujidian 节点1位置 StoreName OBJECT-TYPE SYNTAX String (SIZE(0..10)) ACCESS read-only STATUS mandatory DESCRIPTION "cell phone store's name" ::= { shoujidian 1 } --手机店地址 StoreAddress OBJECT-TYPE SYNTAX String (SIZE(0..10)) ACCESS read-only STATUS mandatory DESCRIPTION "cell phone store's address" ::= { shoujidian 2 } --手机店老板姓名 BossName OBJECT-TYPE SYNTAX String (SIZE(0..10)) ACCESS read-write STATUS mandatory DESCRIPTION "name of cell phone store's boss" ::= { shoujidian 3 } --手机店手机总数 NumofPhones OBJECT-TYPE SYNTAX Int (0..65535) ACCESS read-only STATUS mandatory DESCRIPTION "number of phones " ::= { shoujidian 4 } --库存信息 --创建table类型repertory,用SEQUENCE OF数据类型,位于shoujidian 5节点位置 repertory OBJECT-TYPE SYNTAX SEQUENCE OF Repertory ACCESS not-accessible STATUS mandatory DESCRIPTION "Information of repertory" ::= { shoujidian 5 } --列表下创建子对象,同时将其作为索引列。此处使用子对象PhoneModel作为索引。 repertorySituation OBJECT-TYPE SYNTAX Repertory ACCESS not-accessible STATUS mandatory DESCRIPTION "cellphone model." INDEX { PhoneModel } ::= { repertory 1 } --声明Repertory所包含的对象及类型,用sequence 创建表格类型的对象 Repertory ::= SEQUENCE{ PhoneModel String, Producter String, CPUNums Int, RAM Int, Storage Int, RepertoryNum Int } --分别创建对象 PhoneModel OBJECT-TYPE SYNTAX String (SIZE(0..10)) ACCESS read-only STATUS mandatory DESCRIPTION "different type of cellphones" ::= { repertorySituation 1 } Producter OBJECT-TYPE SYNTAX String (SIZE(0..10)) ACCESS read-only STATUS mandatory DESCRIPTION "producter" ::= { repertorySituation 2 } CPUNums OBJECT-TYPE SYNTAX Int (0..1000) ACCESS read-only STATUS mandatory DESCRIPTION "number of CPU kernals" ::= { repertorySituation 3 } RAM OBJECT-TYPE SYNTAX Int (0..65535) ACCESS read-only STATUS mandatory DESCRIPTION "Capacity of the memory module, units: GB" ::= { repertorySituation 4 } Storage OBJECT-TYPE SYNTAX Int (0..65535) ACCESS read-only STATUS mandatory DESCRIPTION "Storage of cellphone, units: GB" ::= { repertorySituation 5 } RepertoryNum OBJECT-TYPE SYNTAX Int (0..65535) ACCESS read-only STATUS mandatory DESCRIPTION "quantity in stock" ::= { repertorySituation 6 } --结束标志 END


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有